.\"	$OpenBSD: mount_msdos.8,v 1.27 2010/10/14 07:05:43 jmc Exp $
.\"	$NetBSD: mount_msdos.8,v 1.10 1996/01/19 21:14:43 leo Exp $
.\"
.\" Copyright (c) 1993,1994 Christopher G. Demetriou
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"      This product includes software developed by Christopher G. Demetriou.
.\" 4. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: October 14 2010 $
.Dt MOUNT_MSDOS 8
.Os
.Sh NAME
.Nm mount_msdos
.Nd mount an MS-DOS file system
.Sh SYNOPSIS
.Nm mount_msdos
.Op Fl 9lsx
.Op Fl g Ar gid
.Op Fl m Ar mask
.Op Fl o Ar options
.Op Fl u Ar uid
.Ar special
.Ar node
.Sh DESCRIPTION
The
.Nm
command attaches the MS-DOS file system residing on
the device
.Ar special
to the global file system namespace at the location
indicated by
.Ar node .
This command is invoked by
.Xr mount 8
when using the syntax
.Bd -ragged -offset 4n
.Nm mount Op options
-t msdos
.Ar special Ar node
.Ed
.Pp
The
.Ar special
device must correspond to a partition registered in the
.Xr disklabel 5 .
.Pp
This command is normally executed by
.Xr mount 8
at boot time, but can be used by any user to mount an
MS-DOS file system on any directory that they own (provided,
of course, that they have appropriate access to the device that
contains the file system).
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl 9
Ignore the special Windows 95/98 directory entries even
if deleting or renaming a file.
This forces
.Fl s .
.It Fl g Ar gid
Set the group of the files in the file system to
.Ar gid .
The default group is the group of the directory
on which the file system is being mounted.
.It Fl l
Force listing and generation of
Windows 95/98 long filenames
and separate creation/modification/access dates.
.Pp
If neither
.Fl s
nor
.Fl l
are given,
.Nm
searches the root directory of the file system to
be mounted for any existing Windows 95/98 long filenames.
If no such entries are found,
.Fl s
is the default.
Otherwise
.Fl l
is assumed.
.It Fl m Ar mask
Specify the maximum permissions for files and directories
in the file system.
Only the nine low-order bits of
.Ar mask
are used.
.It Fl o Ar options
Use the specified mount
.Ar options ,
as described in
.Xr mount 8 .
.It Fl s
Force behaviour to
ignore and not generate Windows 95/98 long filenames.
.Pp
If neither
.Fl s
nor
.Fl l
are given,
.Nm
searches the root directory of the file system to
be mounted for any existing Windows 95/98 long filenames.
If no such entries are found,
.Fl s
is the default.
Otherwise
.Fl l
is assumed.
.It Fl u Ar uid
Set the owner of the files in the file system to
.Ar uid .
The default owner is the owner of the directory
on which the file system is being mounted.
.It Fl x
If a directory is readable, it inherits the x attribute as well.
.El
.Pp
File permissions for FAT file systems are imitated,
since the file system has no real concept of permissions.
The default mask is taken from the
directory on which the file system is being mounted,
except when the
.Fl m
option is used.
FAT does have a
.Dq read only
mode,
in which the writable bit is unset.
If such files are found,
they are marked non-writable;
it can be set using
.Li chmod -w
or unset using
.Li chmod +w .
.Pp
File modes work the same way for directories.
However if a directory is mounted with
.Fl x ,
it will inherit the executable bit if it is readable.
This can be useful for making files non-executable
and directories executable:
using
.Li -x -m 644
will in most cases give permissions of 755 for directories
and 644 for files.
See
.Xr chmod 1
for more information about octal file modes.
.Sh SEE ALSO
.Xr chmod 1 ,
.Xr mount 2 ,
.Xr disklabel 5 ,
.Xr fstab 5 ,
.Xr disklabel 8 ,
.Xr mount 8 ,
.Xr umount 8
.Sh HISTORY
The
.Nm
utility first appeared in
.Nx 0.9 .
Its predecessor, the
.Nm mount_pcfs
utility, appeared in
.Nx 0.8 ,
and was abandoned in favor
of the more aptly named
.Nm mount_msdos .
.Sh CAVEATS
The maximum file size supported by the MS-DOS file system is
one byte less than 4GB.
This is a FAT file system limitation, documented by Microsoft
in Knowledge Base article 314463.
.Pp
The MS-DOS file system (even with long filenames) does not support
filenames with trailing dots or spaces.
Any such characters will be silently removed before the directory entry
is written.
This too is a FAT file system limitation.
.Pp
The use of the
.Fl 9
flag could result in damaged file systems,
albeit the damage is in part taken care of by
procedures similar to the ones used in Windows 95/98.
.Pp
The default handling for
.Fl s
and
.Fl l
will result in empty file systems being populated
with short filenames only.
To generate long filenames on empty DOS file systems use
.Fl l .
.Pp
Note that Windows 95/98 handles only access dates,
but not access times.
